package com.plugin.core.util;


import com.plugin.core.util.crypt.MyAes;
import com.plugin.core.util.crypt.MyMd5;

/**
 * 安全加密工具类
 * @author Mark
 */
public class CryptSecuriteUtil {


    private static final String PUBLIC_KEY = PropertiesUtil.getValueByKey("RANDOM_PUBLIC_KEY");

    private static final String PRIVAT_KEY = PropertiesUtil.getValueByKey("RANDOM_PRIVAT_KEY");

    /**
     * RSA加密
     * @param password  经前端Aes加密后的字符串
     * @return 登录密码(经md5)加密后存到数据库的值
     */
    public static String encodePwdByRSA(String password) {
        return RSAUtil.encrypt(password, PUBLIC_KEY);
    }

    /**
     * RSA解密
     * @param password AES字符串(即数据库中存贮的字符串,字段为密码)
     */
    public static String decodePwdByRSA(String password) {
        return RSAUtil.decrypt(password,PRIVAT_KEY);
    }

    /**
     *
     * @param pwd 经aes转码后的登录密码,因为前端也加密了
     * @param dest 数据库的密码字段的值
     */
    public static boolean verifyPassword(String pwd,String dest) {
        return MyMd5.encryptPassword(pwd).equals(dest);
    }

    /**
     *
     * @param password  初始的未进行任何加密的密码明文
     */
    public static String encodePwdFromOrigin(String password){
        return MyAes.encryptPkcs5Padding(password);
    }

    public static String getLastSecretPwd(String pwdByAES){
        String s= MyAes.encryptPkcs5Padding(pwdByAES);
        return MyMd5.encryptPassword(s);
    }
}
